MySQL使用IF函数来动态执行where条件 |
您所在的位置:网站首页 › mysql 查询多条件 › MySQL使用IF函数来动态执行where条件 |
IF函数
IF(expression ,expr_true, expr_false);
MySQL的IF()函数,接受三个表达式,如果第一个表达式为true,而不是零且不为NULL,它将返回第二个表达式。否则,它返回第三个表达式。根据使用它的上下文,它返回数字或字符串值。 IF函数在WHERE条件中的使用先来看一个SQL: select book_name,read_status from t_book;结果如下: read_status字段意思是阅读状态,有以下几个值: 0(未阅读),1(阅读中),2(已阅读)。 下面使用IF函数来查询: # 查询未阅读的book select book_name,read_status from t_book where IF(-1 = 0, true, read_status = 0);JAVA使用 /** * 根据阅读状态来查询book * @param readStatus * @return */ @Query(value = "select book_name,read_status from t_book where IF(-1 = :readStatus, true, read_status = readStatus)", nativeQuery = true) List queryByReadStatus(@Param("readStatus") String readStatus);这样可以通过传入readStatus的值来控制是否执行read_status条件,当传值为-1时,不执行 read_status = -1 条件,而是执行 true,相当于忽略了read_status条件,达到查询全部状态的book目的。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |